#pragma once
#include <QString>

namespace Networking
{
    namespace Messaging
    {
        static const QString DelimeterSequence("#");
        static const QString EOMSequence("\r\n");

        static const QStringList MessageHeaders = QStringList()
                // client messages headers
                << "CS_SEND_NICK"
                << "CS_DISCONNECT"
                << "CS_FIRE"
                << "CS_MOVE"
                << "CS_TURN"
                << "CS_STOP_MOVE"
                << "CS_STOP_FIRE"

                // server messages headers
                << "SC_CONN_ACCEPTED"
                << "SC_CONN_REJECTED"
                << "SC_PLAYERLIST"
                << "SC_GAME_START"
                << "SC_GAME_END"
                << "SC_SEND_SNAPSHOT"
                << "SC_SEND_MAP"
                << "SC_MOVE"
                << "SC_FIRE"
                << "SC_TURN"
                << "SC_STOP_MOVE"
                << "SC_STOP_FIRE";


        static const QStringList ActionTypes = QStringList()
                << "S" //stay
                << "M" //move forward
                << "R" //turning right
                << "L"//turning left
                   ;

        static const QStringList Directions = QStringList()
                << "N" //north
                << "S" //south
                << "E" //east
                << "W" //west
                    ;

        static const QStringList TurnDirections = QStringList()
                << "L" //turn to left
                << "R" //turn to right
                    ;

        static const QStringList CellTypes = QStringList()
                << "E" //for empty cell
                << "W" //for wall cell
                << "B" //for bush cell
                    ;
    }
}

